package com.ai.bitcoin.jpa.service;

import com.ai.bitcoin.bo.BatchMonitorSettingBO;
import com.ai.bitcoin.bo.BatchMonitorSettingResultBO;
import com.ai.bitcoin.enums.MonitorSwitchTypeEnum;
import com.ai.bitcoin.exception.BusinessException;
import com.ai.bitcoin.jpa.entity.BccReportMonitorConfig;

import java.util.List;

/**
 * @description: ${description}
 * @author: gulj
 * @create: 2018-08-11 03:06
 **/
public interface BccReportMonitorConfigService {

    /**
     * 在订阅指定bccId的用户中，在过滤哪些用户打开哪些开关
     *
     * @param bccId
     * @param openIds
     * @param switchTypeEnum
     * @return
     */
    List<BccReportMonitorConfig> getByOpenIdAndBccIdAndSwitchTypeEnum(String bccId, List<String> openIds, MonitorSwitchTypeEnum switchTypeEnum);

    /**
     * 批量设置订阅开关
     *
     * @param settingBO 设置VO
     * @throws BusinessException
     */
    void batchSetting(BatchMonitorSettingBO settingBO) throws BusinessException;

    /**
     * 取得用户配置
     *
     * @param openId 微信openId
     * @return VO
     */
    BatchMonitorSettingResultBO getMonitorBatchSetting(String openId) throws BusinessException;
}
